package com.mrd.base.utils;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * HttpServletResponse帮助类
 * 
 * @author han
 */
public final class ResponseUtils {
  public static final Logger log = LoggerFactory.getLogger(ResponseUtils.class);

  /**
   * 发送文本。使用UTF-8编码。
   * 
   * @param response HttpServletResponse
   * @param text 发送的字符串
   */
  public static void renderText(HttpServletResponse response, String text) {
    render(response, "text/plain;charset=UTF-8", text);
  }

  /**
   * 发送json。使用UTF-8编码。
   * 
   * @param response HttpServletResponse
   * @param text 发送的字符串
   */
  public static void renderJson(HttpServletResponse response, String text) {
    render(response, "application/json;charset=UTF-8", text);
  }

  /**
   * 发送xml。使用UTF-8编码。
   * 
   * @param response HttpServletResponse
   * @param text 发送的字符串
   */
  public static void renderXml(HttpServletResponse response, String text) {
    render(response, "text/xml;charset=UTF-8", text);
  }

  /**
   * 发送内容。使用UTF-8编码。
   * 
   * @param response
   * @param contentType
   * @param text
   */
  public static void render(HttpServletResponse response, String contentType, String text) {
    response.setContentType(contentType);
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    PrintWriter pWriter = null;
    try {
      pWriter = response.getWriter();
      pWriter.write(text);
      pWriter.flush();
    } catch (IOException e) {
      log.error(e.getMessage(), e);
    } finally {
      IOUtils.closeQuietly(pWriter);
    }
  }
}
